package com.apigen.platform.service;

import com.apigen.platform.dto.CodeGenerationRequest;

import java.util.Map;

/**
 * 增强版代码生成服务接口
 *
 * @author API Generator Platform
 * @since 2025-10-03
 */
public interface EnhancedCodeGenerationService {

    /**
     * 生成完整项目
     *
     * @param request 生成请求
     * @return 生成结果
     */
    Map<String, Object> generateProject(CodeGenerationRequest request);

    /**
     * 预览生成代码
     *
     * @param request 生成请求
     * @return 预览结果，包含文件路径和内容的映射
     */
    Map<String, Object> previewCode(CodeGenerationRequest request);

    /**
     * 生成单个表的代码
     *
     * @param request 生成请求
     * @param tableId 表ID
     * @return 生成结果
     */
    Map<String, Object> generateTableCode(CodeGenerationRequest request, Long tableId);

    /**
     * 下载生成的项目
     *
     * @param generationId 生成记录ID
     * @return 文件下载信息
     */
    Map<String, Object> downloadProject(String generationId);

    /**
     * 清理临时文件
     *
     * @param generationId 生成记录ID
     * @return 清理结果
     */
    Boolean cleanupTempFiles(String generationId);
}
